
// Generated from PromQLLexer.g4 by ANTLR 4.13.2


#include "PromQLLexer.h"


using namespace antlr4;

using namespace antlr4_grammars;


using namespace antlr4;

namespace {

struct PromQLLexerStaticData final {
  PromQLLexerStaticData(std::vector<std::string> ruleNames,
                          std::vector<std::string> channelNames,
                          std::vector<std::string> modeNames,
                          std::vector<std::string> literalNames,
                          std::vector<std::string> symbolicNames)
      : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)),
        modeNames(std::move(modeNames)), literalNames(std::move(literalNames)),
        symbolicNames(std::move(symbolicNames)),
        vocabulary(this->literalNames, this->symbolicNames) {}

  PromQLLexerStaticData(const PromQLLexerStaticData&) = delete;
  PromQLLexerStaticData(PromQLLexerStaticData&&) = delete;
  PromQLLexerStaticData& operator=(const PromQLLexerStaticData&) = delete;
  PromQLLexerStaticData& operator=(PromQLLexerStaticData&&) = delete;

  std::vector<antlr4::dfa::DFA> decisionToDFA;
  antlr4::atn::PredictionContextCache sharedContextCache;
  const std::vector<std::string> ruleNames;
  const std::vector<std::string> channelNames;
  const std::vector<std::string> modeNames;
  const std::vector<std::string> literalNames;
  const std::vector<std::string> symbolicNames;
  const antlr4::dfa::Vocabulary vocabulary;
  antlr4::atn::SerializedATNView serializedATN;
  std::unique_ptr<antlr4::atn::ATN> atn;
};

::antlr4::internal::OnceFlag promqllexerLexerOnceFlag;
#if ANTLR4_USE_THREAD_LOCAL_CACHE
static thread_local
#endif
std::unique_ptr<PromQLLexerStaticData> promqllexerLexerStaticData = nullptr;

void promqllexerLexerInitialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
  if (promqllexerLexerStaticData != nullptr) {
    return;
  }
#else
  assert(promqllexerLexerStaticData == nullptr);
#endif
  auto staticData = std::make_unique<PromQLLexerStaticData>(
    std::vector<std::string>{
      "NUMERAL", "SCIENTIFIC_NUMBER", "NUMBER", "STRING", "ADD", "SUB", 
      "MULT", "DIV", "MOD", "POW", "AND", "OR", "UNLESS", "EQ", "DEQ", "NE", 
      "GT", "LT", "GE", "LE", "RE", "NRE", "BY", "WITHOUT", "ON", "IGNORING", 
      "GROUP_LEFT", "GROUP_RIGHT", "OFFSET", "BOOL", "AGGREGATION_OPERATOR", 
      "FUNCTION", "LEFT_BRACE", "RIGHT_BRACE", "LEFT_PAREN", "RIGHT_PAREN", 
      "LEFT_BRACKET", "RIGHT_BRACKET", "COMMA", "AT", "SUBQUERY_RANGE", 
      "TIME_RANGE", "DURATION", "METRIC_NAME", "LABEL_NAME", "WS", "SL_COMMENT", 
      "WS_FRAGMENT"
    },
    std::vector<std::string>{
      "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
    },
    std::vector<std::string>{
      "DEFAULT_MODE"
    },
    std::vector<std::string>{
      "", "", "", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'and'", "'or'", 
      "'unless'", "'='", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'=~'", 
      "'!~'", "'by'", "'without'", "'on'", "'ignoring'", "'group_left'", 
      "'group_right'", "'offset'", "'bool'", "", "", "'{'", "'}'", "'('", 
      "')'", "'['", "']'", "','", "'@'"
    },
    std::vector<std::string>{
      "", "NUMBER", "STRING", "ADD", "SUB", "MULT", "DIV", "MOD", "POW", 
      "AND", "OR", "UNLESS", "EQ", "DEQ", "NE", "GT", "LT", "GE", "LE", 
      "RE", "NRE", "BY", "WITHOUT", "ON", "IGNORING", "GROUP_LEFT", "GROUP_RIGHT", 
      "OFFSET", "BOOL", "AGGREGATION_OPERATOR", "FUNCTION", "LEFT_BRACE", 
      "RIGHT_BRACE", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", 
      "COMMA", "AT", "SUBQUERY_RANGE", "TIME_RANGE", "METRIC_NAME", "LABEL_NAME", 
      "WS", "SL_COMMENT"
    }
  );
  static const int32_t serializedATNSegment[] = {
  	4,0,44,969,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,
  	6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,
  	7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,
  	7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,
  	7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,
  	7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,
  	7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,1,0,4,0,99,8,0,
  	11,0,12,0,100,1,0,1,0,4,0,105,8,0,11,0,12,0,106,3,0,109,8,0,1,1,1,1,1,
  	1,3,1,114,8,1,1,1,3,1,117,8,1,1,2,1,2,1,2,3,2,122,8,2,1,3,1,3,1,3,1,3,
  	5,3,128,8,3,10,3,12,3,131,9,3,1,3,1,3,1,3,1,3,1,3,5,3,138,8,3,10,3,12,
  	3,141,9,3,1,3,3,3,144,8,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,
  	1,9,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,
  	1,12,1,13,1,13,1,14,1,14,1,14,1,15,1,15,1,15,1,16,1,16,1,17,1,17,1,18,
  	1,18,1,18,1,19,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,
  	1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,25,1,25,1,25,
  	1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,
  	1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
  	1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,30,
  	1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,
  	1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,
  	1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,
  	1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,
  	1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,319,8,30,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
  	1,31,3,31,871,8,31,1,32,1,32,1,33,1,33,1,34,1,34,1,35,1,35,1,36,1,36,
  	1,37,1,37,1,38,1,38,1,39,1,39,1,40,1,40,3,40,891,8,40,1,40,1,40,3,40,
  	895,8,40,1,40,1,40,3,40,899,8,40,1,40,3,40,902,8,40,1,40,3,40,905,8,40,
  	1,40,1,40,1,41,1,41,3,41,911,8,41,1,41,1,41,3,41,915,8,41,1,41,1,41,1,
  	42,4,42,920,8,42,11,42,12,42,921,1,42,1,42,1,42,3,42,927,8,42,4,42,929,
  	8,42,11,42,12,42,930,1,43,1,43,5,43,935,8,43,10,43,12,43,938,9,43,1,44,
  	1,44,5,44,942,8,44,10,44,12,44,945,9,44,1,45,4,45,948,8,45,11,45,12,45,
  	949,1,45,1,45,1,46,1,46,5,46,956,8,46,10,46,12,46,959,9,46,1,46,1,46,
  	1,46,1,46,1,47,4,47,966,8,47,11,47,12,47,967,1,957,0,48,1,0,3,0,5,1,7,
  	2,9,3,11,4,13,5,15,6,17,7,19,8,21,9,23,10,25,11,27,12,29,13,31,14,33,
  	15,35,16,37,17,39,18,41,19,43,20,45,21,47,22,49,23,51,24,53,25,55,26,
  	57,27,59,28,61,29,63,30,65,31,67,32,69,33,71,34,73,35,75,36,77,37,79,
  	38,81,39,83,40,85,0,87,41,89,42,91,43,93,44,95,0,1,0,34,1,0,48,57,2,0,
  	69,69,101,101,2,0,43,43,45,45,2,0,39,39,92,92,2,0,34,34,92,92,2,0,65,
  	65,97,97,2,0,78,78,110,110,2,0,68,68,100,100,2,0,79,79,111,111,2,0,82,
  	82,114,114,2,0,85,85,117,117,2,0,76,76,108,108,2,0,83,83,115,115,2,0,
  	66,66,98,98,2,0,89,89,121,121,2,0,87,87,119,119,2,0,73,73,105,105,2,0,
  	84,84,116,116,2,0,72,72,104,104,2,0,71,71,103,103,2,0,80,80,112,112,2,
  	0,70,70,102,102,2,0,77,77,109,109,2,0,88,88,120,120,2,0,86,86,118,118,
  	2,0,67,67,99,99,2,0,75,75,107,107,2,0,81,81,113,113,12,0,68,68,72,72,
  	77,77,83,83,87,87,89,89,100,100,104,104,109,109,115,115,119,119,121,121,
  	4,0,58,58,65,90,95,95,97,122,4,0,48,58,65,90,95,95,97,122,3,0,65,90,95,
  	95,97,122,4,0,48,57,65,90,95,95,97,122,3,0,9,10,13,13,32,32,1071,0,5,
  	1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,
  	0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,
  	27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,
  	0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,
  	0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,
  	59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,
  	0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,
  	0,0,81,1,0,0,0,0,83,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,
  	93,1,0,0,0,1,98,1,0,0,0,3,110,1,0,0,0,5,121,1,0,0,0,7,143,1,0,0,0,9,145,
  	1,0,0,0,11,147,1,0,0,0,13,149,1,0,0,0,15,151,1,0,0,0,17,153,1,0,0,0,19,
  	155,1,0,0,0,21,157,1,0,0,0,23,161,1,0,0,0,25,164,1,0,0,0,27,171,1,0,0,
  	0,29,173,1,0,0,0,31,176,1,0,0,0,33,179,1,0,0,0,35,181,1,0,0,0,37,183,
  	1,0,0,0,39,186,1,0,0,0,41,189,1,0,0,0,43,192,1,0,0,0,45,195,1,0,0,0,47,
  	198,1,0,0,0,49,206,1,0,0,0,51,209,1,0,0,0,53,218,1,0,0,0,55,229,1,0,0,
  	0,57,241,1,0,0,0,59,248,1,0,0,0,61,318,1,0,0,0,63,870,1,0,0,0,65,872,
  	1,0,0,0,67,874,1,0,0,0,69,876,1,0,0,0,71,878,1,0,0,0,73,880,1,0,0,0,75,
  	882,1,0,0,0,77,884,1,0,0,0,79,886,1,0,0,0,81,888,1,0,0,0,83,908,1,0,0,
  	0,85,928,1,0,0,0,87,932,1,0,0,0,89,939,1,0,0,0,91,947,1,0,0,0,93,953,
  	1,0,0,0,95,965,1,0,0,0,97,99,7,0,0,0,98,97,1,0,0,0,99,100,1,0,0,0,100,
  	98,1,0,0,0,100,101,1,0,0,0,101,108,1,0,0,0,102,104,5,46,0,0,103,105,7,
  	0,0,0,104,103,1,0,0,0,105,106,1,0,0,0,106,104,1,0,0,0,106,107,1,0,0,0,
  	107,109,1,0,0,0,108,102,1,0,0,0,108,109,1,0,0,0,109,2,1,0,0,0,110,116,
  	3,1,0,0,111,113,7,1,0,0,112,114,7,2,0,0,113,112,1,0,0,0,113,114,1,0,0,
  	0,114,115,1,0,0,0,115,117,3,1,0,0,116,111,1,0,0,0,116,117,1,0,0,0,117,
  	4,1,0,0,0,118,122,3,1,0,0,119,122,3,3,1,0,120,122,3,85,42,0,121,118,1,
  	0,0,0,121,119,1,0,0,0,121,120,1,0,0,0,122,6,1,0,0,0,123,129,5,39,0,0,
  	124,128,8,3,0,0,125,126,5,92,0,0,126,128,9,0,0,0,127,124,1,0,0,0,127,
  	125,1,0,0,0,128,131,1,0,0,0,129,127,1,0,0,0,129,130,1,0,0,0,130,132,1,
  	0,0,0,131,129,1,0,0,0,132,144,5,39,0,0,133,139,5,34,0,0,134,138,8,4,0,
  	0,135,136,5,92,0,0,136,138,9,0,0,0,137,134,1,0,0,0,137,135,1,0,0,0,138,
  	141,1,0,0,0,139,137,1,0,0,0,139,140,1,0,0,0,140,142,1,0,0,0,141,139,1,
  	0,0,0,142,144,5,34,0,0,143,123,1,0,0,0,143,133,1,0,0,0,144,8,1,0,0,0,
  	145,146,5,43,0,0,146,10,1,0,0,0,147,148,5,45,0,0,148,12,1,0,0,0,149,150,
  	5,42,0,0,150,14,1,0,0,0,151,152,5,47,0,0,152,16,1,0,0,0,153,154,5,37,
  	0,0,154,18,1,0,0,0,155,156,5,94,0,0,156,20,1,0,0,0,157,158,7,5,0,0,158,
  	159,7,6,0,0,159,160,7,7,0,0,160,22,1,0,0,0,161,162,7,8,0,0,162,163,7,
  	9,0,0,163,24,1,0,0,0,164,165,7,10,0,0,165,166,7,6,0,0,166,167,7,11,0,
  	0,167,168,7,1,0,0,168,169,7,12,0,0,169,170,7,12,0,0,170,26,1,0,0,0,171,
  	172,5,61,0,0,172,28,1,0,0,0,173,174,5,61,0,0,174,175,5,61,0,0,175,30,
  	1,0,0,0,176,177,5,33,0,0,177,178,5,61,0,0,178,32,1,0,0,0,179,180,5,62,
  	0,0,180,34,1,0,0,0,181,182,5,60,0,0,182,36,1,0,0,0,183,184,5,62,0,0,184,
  	185,5,61,0,0,185,38,1,0,0,0,186,187,5,60,0,0,187,188,5,61,0,0,188,40,
  	1,0,0,0,189,190,5,61,0,0,190,191,5,126,0,0,191,42,1,0,0,0,192,193,5,33,
  	0,0,193,194,5,126,0,0,194,44,1,0,0,0,195,196,7,13,0,0,196,197,7,14,0,
  	0,197,46,1,0,0,0,198,199,7,15,0,0,199,200,7,16,0,0,200,201,7,17,0,0,201,
  	202,7,18,0,0,202,203,7,8,0,0,203,204,7,10,0,0,204,205,7,17,0,0,205,48,
  	1,0,0,0,206,207,7,8,0,0,207,208,7,6,0,0,208,50,1,0,0,0,209,210,7,16,0,
  	0,210,211,7,19,0,0,211,212,7,6,0,0,212,213,7,8,0,0,213,214,7,9,0,0,214,
  	215,7,16,0,0,215,216,7,6,0,0,216,217,7,19,0,0,217,52,1,0,0,0,218,219,
  	7,19,0,0,219,220,7,9,0,0,220,221,7,8,0,0,221,222,7,10,0,0,222,223,7,20,
  	0,0,223,224,5,95,0,0,224,225,7,11,0,0,225,226,7,1,0,0,226,227,7,21,0,
  	0,227,228,7,17,0,0,228,54,1,0,0,0,229,230,7,19,0,0,230,231,7,9,0,0,231,
  	232,7,8,0,0,232,233,7,10,0,0,233,234,7,20,0,0,234,235,5,95,0,0,235,236,
  	7,9,0,0,236,237,7,16,0,0,237,238,7,19,0,0,238,239,7,18,0,0,239,240,7,
  	17,0,0,240,56,1,0,0,0,241,242,7,8,0,0,242,243,7,21,0,0,243,244,7,21,0,
  	0,244,245,7,12,0,0,245,246,7,1,0,0,246,247,7,17,0,0,247,58,1,0,0,0,248,
  	249,7,13,0,0,249,250,7,8,0,0,250,251,7,8,0,0,251,252,7,11,0,0,252,60,
  	1,0,0,0,253,254,7,12,0,0,254,255,7,10,0,0,255,319,7,22,0,0,256,257,7,
  	22,0,0,257,258,7,16,0,0,258,319,7,6,0,0,259,260,7,22,0,0,260,261,7,5,
  	0,0,261,319,7,23,0,0,262,263,7,5,0,0,263,264,7,24,0,0,264,319,7,19,0,
  	0,265,266,7,19,0,0,266,267,7,9,0,0,267,268,7,8,0,0,268,269,7,10,0,0,269,
  	319,7,20,0,0,270,271,7,12,0,0,271,272,7,17,0,0,272,273,7,7,0,0,273,274,
  	7,7,0,0,274,275,7,1,0,0,275,319,7,24,0,0,276,277,7,12,0,0,277,278,7,17,
  	0,0,278,279,7,7,0,0,279,280,7,24,0,0,280,281,7,5,0,0,281,319,7,9,0,0,
  	282,283,7,25,0,0,283,284,7,8,0,0,284,285,7,10,0,0,285,286,7,6,0,0,286,
  	319,7,17,0,0,287,288,7,25,0,0,288,289,7,8,0,0,289,290,7,10,0,0,290,291,
  	7,6,0,0,291,292,7,17,0,0,292,293,5,95,0,0,293,294,7,24,0,0,294,295,7,
  	5,0,0,295,296,7,11,0,0,296,297,7,10,0,0,297,298,7,1,0,0,298,319,7,12,
  	0,0,299,300,7,13,0,0,300,301,7,8,0,0,301,302,7,17,0,0,302,303,7,17,0,
  	0,303,304,7,8,0,0,304,305,7,22,0,0,305,319,7,26,0,0,306,307,7,17,0,0,
  	307,308,7,8,0,0,308,309,7,20,0,0,309,319,7,26,0,0,310,311,7,27,0,0,311,
  	312,7,10,0,0,312,313,7,5,0,0,313,314,7,6,0,0,314,315,7,17,0,0,315,316,
  	7,16,0,0,316,317,7,11,0,0,317,319,7,1,0,0,318,253,1,0,0,0,318,256,1,0,
  	0,0,318,259,1,0,0,0,318,262,1,0,0,0,318,265,1,0,0,0,318,270,1,0,0,0,318,
  	276,1,0,0,0,318,282,1,0,0,0,318,287,1,0,0,0,318,299,1,0,0,0,318,306,1,
  	0,0,0,318,310,1,0,0,0,319,62,1,0,0,0,320,321,5,97,0,0,321,322,5,98,0,
  	0,322,871,5,115,0,0,323,324,5,97,0,0,324,325,5,98,0,0,325,326,5,115,0,
  	0,326,327,5,101,0,0,327,328,5,110,0,0,328,871,5,116,0,0,329,330,5,97,
  	0,0,330,331,5,98,0,0,331,332,5,115,0,0,332,333,5,101,0,0,333,334,5,110,
  	0,0,334,335,5,116,0,0,335,336,5,95,0,0,336,337,5,111,0,0,337,338,5,118,
  	0,0,338,339,5,101,0,0,339,340,5,114,0,0,340,341,5,95,0,0,341,342,5,116,
  	0,0,342,343,5,105,0,0,343,344,5,109,0,0,344,871,5,101,0,0,345,346,5,99,
  	0,0,346,347,5,101,0,0,347,348,5,105,0,0,348,871,5,108,0,0,349,350,5,99,
  	0,0,350,351,5,104,0,0,351,352,5,97,0,0,352,353,5,110,0,0,353,354,5,103,
  	0,0,354,355,5,101,0,0,355,871,5,115,0,0,356,357,5,99,0,0,357,358,5,108,
  	0,0,358,359,5,97,0,0,359,360,5,109,0,0,360,871,5,112,0,0,361,362,5,99,
  	0,0,362,363,5,108,0,0,363,364,5,97,0,0,364,365,5,109,0,0,365,366,5,112,
  	0,0,366,367,5,95,0,0,367,368,5,109,0,0,368,369,5,97,0,0,369,871,5,120,
  	0,0,370,371,5,99,0,0,371,372,5,108,0,0,372,373,5,97,0,0,373,374,5,109,
  	0,0,374,375,5,112,0,0,375,376,5,95,0,0,376,377,5,109,0,0,377,378,5,105,
  	0,0,378,871,5,110,0,0,379,380,5,100,0,0,380,381,5,97,0,0,381,382,5,121,
  	0,0,382,383,5,95,0,0,383,384,5,111,0,0,384,385,5,102,0,0,385,386,5,95,
  	0,0,386,387,5,109,0,0,387,388,5,111,0,0,388,389,5,110,0,0,389,390,5,116,
  	0,0,390,871,5,104,0,0,391,392,5,100,0,0,392,393,5,97,0,0,393,394,5,121,
  	0,0,394,395,5,95,0,0,395,396,5,111,0,0,396,397,5,102,0,0,397,398,5,95,
  	0,0,398,399,5,119,0,0,399,400,5,101,0,0,400,401,5,101,0,0,401,871,5,107,
  	0,0,402,403,5,100,0,0,403,404,5,97,0,0,404,405,5,121,0,0,405,406,5,95,
  	0,0,406,407,5,111,0,0,407,408,5,102,0,0,408,409,5,95,0,0,409,410,5,121,
  	0,0,410,411,5,101,0,0,411,412,5,97,0,0,412,871,5,114,0,0,413,414,5,100,
  	0,0,414,415,5,97,0,0,415,416,5,121,0,0,416,417,5,115,0,0,417,418,5,95,
  	0,0,418,419,5,105,0,0,419,420,5,110,0,0,420,421,5,95,0,0,421,422,5,109,
  	0,0,422,423,5,111,0,0,423,424,5,110,0,0,424,425,5,116,0,0,425,871,5,104,
  	0,0,426,427,5,100,0,0,427,428,5,101,0,0,428,429,5,108,0,0,429,430,5,116,
  	0,0,430,871,5,97,0,0,431,432,5,100,0,0,432,433,5,101,0,0,433,434,5,114,
  	0,0,434,435,5,105,0,0,435,871,5,118,0,0,436,437,5,101,0,0,437,438,5,120,
  	0,0,438,871,5,112,0,0,439,440,5,102,0,0,440,441,5,108,0,0,441,442,5,111,
  	0,0,442,443,5,111,0,0,443,871,5,114,0,0,444,445,5,104,0,0,445,446,5,105,
  	0,0,446,447,5,115,0,0,447,448,5,116,0,0,448,449,5,111,0,0,449,450,5,103,
  	0,0,450,451,5,114,0,0,451,452,5,97,0,0,452,453,5,109,0,0,453,454,5,95,
  	0,0,454,455,5,99,0,0,455,456,5,111,0,0,456,457,5,117,0,0,457,458,5,110,
  	0,0,458,871,5,116,0,0,459,460,5,104,0,0,460,461,5,105,0,0,461,462,5,115,
  	0,0,462,463,5,116,0,0,463,464,5,111,0,0,464,465,5,103,0,0,465,466,5,114,
  	0,0,466,467,5,97,0,0,467,468,5,109,0,0,468,469,5,95,0,0,469,470,5,115,
  	0,0,470,471,5,117,0,0,471,871,5,109,0,0,472,473,5,104,0,0,473,474,5,105,
  	0,0,474,475,5,115,0,0,475,476,5,116,0,0,476,477,5,111,0,0,477,478,5,103,
  	0,0,478,479,5,114,0,0,479,480,5,97,0,0,480,481,5,109,0,0,481,482,5,95,
  	0,0,482,483,5,102,0,0,483,484,5,114,0,0,484,485,5,97,0,0,485,486,5,99,
  	0,0,486,487,5,116,0,0,487,488,5,105,0,0,488,489,5,111,0,0,489,871,5,110,
  	0,0,490,491,5,104,0,0,491,492,5,105,0,0,492,493,5,115,0,0,493,494,5,116,
  	0,0,494,495,5,111,0,0,495,496,5,103,0,0,496,497,5,114,0,0,497,498,5,97,
  	0,0,498,499,5,109,0,0,499,500,5,95,0,0,500,501,5,113,0,0,501,502,5,117,
  	0,0,502,503,5,97,0,0,503,504,5,110,0,0,504,505,5,116,0,0,505,506,5,105,
  	0,0,506,507,5,108,0,0,507,871,5,101,0,0,508,509,5,104,0,0,509,510,5,111,
  	0,0,510,511,5,108,0,0,511,512,5,116,0,0,512,513,5,95,0,0,513,514,5,119,
  	0,0,514,515,5,105,0,0,515,516,5,110,0,0,516,517,5,116,0,0,517,518,5,101,
  	0,0,518,519,5,114,0,0,519,871,5,115,0,0,520,521,5,104,0,0,521,522,5,111,
  	0,0,522,523,5,117,0,0,523,871,5,114,0,0,524,525,5,105,0,0,525,526,5,100,
  	0,0,526,527,5,101,0,0,527,528,5,108,0,0,528,529,5,116,0,0,529,871,5,97,
  	0,0,530,531,5,105,0,0,531,532,5,110,0,0,532,533,5,99,0,0,533,534,5,114,
  	0,0,534,535,5,101,0,0,535,536,5,97,0,0,536,537,5,115,0,0,537,871,5,101,
  	0,0,538,539,5,105,0,0,539,540,5,114,0,0,540,541,5,97,0,0,541,542,5,116,
  	0,0,542,871,5,101,0,0,543,544,5,108,0,0,544,545,5,97,0,0,545,546,5,98,
  	0,0,546,547,5,101,0,0,547,548,5,108,0,0,548,549,5,95,0,0,549,550,5,106,
  	0,0,550,551,5,111,0,0,551,552,5,105,0,0,552,871,5,110,0,0,553,554,5,108,
  	0,0,554,555,5,97,0,0,555,556,5,98,0,0,556,557,5,101,0,0,557,558,5,108,
  	0,0,558,559,5,95,0,0,559,560,5,114,0,0,560,561,5,101,0,0,561,562,5,112,
  	0,0,562,563,5,108,0,0,563,564,5,97,0,0,564,565,5,99,0,0,565,871,5,101,
  	0,0,566,567,5,108,0,0,567,871,5,110,0,0,568,569,5,108,0,0,569,570,5,111,
  	0,0,570,571,5,103,0,0,571,871,5,50,0,0,572,573,5,108,0,0,573,574,5,111,
  	0,0,574,575,5,103,0,0,575,576,5,49,0,0,576,871,5,48,0,0,577,578,5,109,
  	0,0,578,579,5,105,0,0,579,580,5,110,0,0,580,581,5,117,0,0,581,582,5,116,
  	0,0,582,871,5,101,0,0,583,584,5,109,0,0,584,585,5,111,0,0,585,586,5,110,
  	0,0,586,587,5,116,0,0,587,871,5,104,0,0,588,589,5,112,0,0,589,590,5,114,
  	0,0,590,591,5,101,0,0,591,592,5,100,0,0,592,593,5,105,0,0,593,594,5,99,
  	0,0,594,595,5,116,0,0,595,596,5,95,0,0,596,597,5,108,0,0,597,598,5,105,
  	0,0,598,599,5,110,0,0,599,600,5,101,0,0,600,601,5,97,0,0,601,871,5,114,
  	0,0,602,603,5,114,0,0,603,604,5,97,0,0,604,605,5,116,0,0,605,871,5,101,
  	0,0,606,607,5,114,0,0,607,608,5,101,0,0,608,609,5,115,0,0,609,610,5,101,
  	0,0,610,611,5,116,0,0,611,871,5,115,0,0,612,613,5,114,0,0,613,614,5,111,
  	0,0,614,615,5,117,0,0,615,616,5,110,0,0,616,871,5,100,0,0,617,618,5,115,
  	0,0,618,619,5,99,0,0,619,620,5,97,0,0,620,621,5,108,0,0,621,622,5,97,
  	0,0,622,871,5,114,0,0,623,624,5,115,0,0,624,625,5,103,0,0,625,871,5,110,
  	0,0,626,627,5,115,0,0,627,628,5,111,0,0,628,629,5,114,0,0,629,871,5,116,
  	0,0,630,631,5,115,0,0,631,632,5,111,0,0,632,633,5,114,0,0,633,634,5,116,
  	0,0,634,635,5,95,0,0,635,636,5,100,0,0,636,637,5,101,0,0,637,638,5,115,
  	0,0,638,871,5,99,0,0,639,640,5,115,0,0,640,641,5,113,0,0,641,642,5,114,
  	0,0,642,871,5,116,0,0,643,644,5,116,0,0,644,645,5,105,0,0,645,646,5,109,
  	0,0,646,871,5,101,0,0,647,648,5,116,0,0,648,649,5,105,0,0,649,650,5,109,
  	0,0,650,651,5,101,0,0,651,652,5,115,0,0,652,653,5,116,0,0,653,654,5,97,
  	0,0,654,655,5,109,0,0,655,871,5,112,0,0,656,657,5,118,0,0,657,658,5,101,
  	0,0,658,659,5,99,0,0,659,660,5,116,0,0,660,661,5,111,0,0,661,871,5,114,
  	0,0,662,663,5,121,0,0,663,664,5,101,0,0,664,665,5,97,0,0,665,871,5,114,
  	0,0,666,667,5,97,0,0,667,668,5,118,0,0,668,669,5,103,0,0,669,670,5,95,
  	0,0,670,671,5,111,0,0,671,672,5,118,0,0,672,673,5,101,0,0,673,674,5,114,
  	0,0,674,675,5,95,0,0,675,676,5,116,0,0,676,677,5,105,0,0,677,678,5,109,
  	0,0,678,871,5,101,0,0,679,680,5,109,0,0,680,681,5,105,0,0,681,682,5,110,
  	0,0,682,683,5,95,0,0,683,684,5,111,0,0,684,685,5,118,0,0,685,686,5,101,
  	0,0,686,687,5,114,0,0,687,688,5,95,0,0,688,689,5,116,0,0,689,690,5,105,
  	0,0,690,691,5,109,0,0,691,871,5,101,0,0,692,693,5,109,0,0,693,694,5,97,
  	0,0,694,695,5,120,0,0,695,696,5,95,0,0,696,697,5,111,0,0,697,698,5,118,
  	0,0,698,699,5,101,0,0,699,700,5,114,0,0,700,701,5,95,0,0,701,702,5,116,
  	0,0,702,703,5,105,0,0,703,704,5,109,0,0,704,871,5,101,0,0,705,706,5,115,
  	0,0,706,707,5,117,0,0,707,708,5,109,0,0,708,709,5,95,0,0,709,710,5,111,
  	0,0,710,711,5,118,0,0,711,712,5,101,0,0,712,713,5,114,0,0,713,714,5,95,
  	0,0,714,715,5,116,0,0,715,716,5,105,0,0,716,717,5,109,0,0,717,871,5,101,
  	0,0,718,719,5,99,0,0,719,720,5,111,0,0,720,721,5,117,0,0,721,722,5,110,
  	0,0,722,723,5,116,0,0,723,724,5,95,0,0,724,725,5,111,0,0,725,726,5,118,
  	0,0,726,727,5,101,0,0,727,728,5,114,0,0,728,729,5,95,0,0,729,730,5,116,
  	0,0,730,731,5,105,0,0,731,732,5,109,0,0,732,871,5,101,0,0,733,734,5,113,
  	0,0,734,735,5,117,0,0,735,736,5,97,0,0,736,737,5,110,0,0,737,738,5,116,
  	0,0,738,739,5,105,0,0,739,740,5,108,0,0,740,741,5,101,0,0,741,742,5,95,
  	0,0,742,743,5,111,0,0,743,744,5,118,0,0,744,745,5,101,0,0,745,746,5,114,
  	0,0,746,747,5,95,0,0,747,748,5,116,0,0,748,749,5,105,0,0,749,750,5,109,
  	0,0,750,871,5,101,0,0,751,752,5,115,0,0,752,753,5,116,0,0,753,754,5,100,
  	0,0,754,755,5,100,0,0,755,756,5,101,0,0,756,757,5,118,0,0,757,758,5,95,
  	0,0,758,759,5,111,0,0,759,760,5,118,0,0,760,761,5,101,0,0,761,762,5,114,
  	0,0,762,763,5,95,0,0,763,764,5,116,0,0,764,765,5,105,0,0,765,766,5,109,
  	0,0,766,871,5,101,0,0,767,768,5,115,0,0,768,769,5,116,0,0,769,770,5,100,
  	0,0,770,771,5,118,0,0,771,772,5,97,0,0,772,773,5,114,0,0,773,774,5,95,
  	0,0,774,775,5,111,0,0,775,776,5,118,0,0,776,777,5,101,0,0,777,778,5,114,
  	0,0,778,779,5,95,0,0,779,780,5,116,0,0,780,781,5,105,0,0,781,782,5,109,
  	0,0,782,871,5,101,0,0,783,784,5,108,0,0,784,785,5,97,0,0,785,786,5,115,
  	0,0,786,787,5,116,0,0,787,788,5,95,0,0,788,789,5,111,0,0,789,790,5,118,
  	0,0,790,791,5,101,0,0,791,792,5,114,0,0,792,793,5,95,0,0,793,794,5,116,
  	0,0,794,795,5,105,0,0,795,796,5,109,0,0,796,871,5,101,0,0,797,798,5,112,
  	0,0,798,799,5,114,0,0,799,800,5,101,0,0,800,801,5,115,0,0,801,802,5,101,
  	0,0,802,803,5,110,0,0,803,804,5,116,0,0,804,805,5,95,0,0,805,806,5,111,
  	0,0,806,807,5,118,0,0,807,808,5,101,0,0,808,809,5,114,0,0,809,810,5,95,
  	0,0,810,811,5,116,0,0,811,812,5,105,0,0,812,813,5,109,0,0,813,871,5,101,
  	0,0,814,815,5,97,0,0,815,816,5,99,0,0,816,817,5,111,0,0,817,871,5,115,
  	0,0,818,819,5,97,0,0,819,820,5,99,0,0,820,821,5,111,0,0,821,822,5,115,
  	0,0,822,871,5,104,0,0,823,824,5,97,0,0,824,825,5,115,0,0,825,826,5,105,
  	0,0,826,871,5,110,0,0,827,828,5,97,0,0,828,829,5,115,0,0,829,830,5,105,
  	0,0,830,831,5,110,0,0,831,871,5,104,0,0,832,833,5,97,0,0,833,834,5,116,
  	0,0,834,835,5,97,0,0,835,871,5,110,0,0,836,837,5,97,0,0,837,838,5,116,
  	0,0,838,839,5,97,0,0,839,840,5,110,0,0,840,871,5,104,0,0,841,842,5,99,
  	0,0,842,843,5,111,0,0,843,871,5,115,0,0,844,845,5,99,0,0,845,846,5,111,
  	0,0,846,847,5,115,0,0,847,871,5,104,0,0,848,849,5,115,0,0,849,850,5,105,
  	0,0,850,871,5,110,0,0,851,852,5,115,0,0,852,853,5,105,0,0,853,854,5,110,
  	0,0,854,871,5,104,0,0,855,856,5,116,0,0,856,857,5,97,0,0,857,871,5,110,
  	0,0,858,859,5,116,0,0,859,860,5,97,0,0,860,861,5,110,0,0,861,871,5,104,
  	0,0,862,863,5,100,0,0,863,864,5,101,0,0,864,871,5,103,0,0,865,866,5,112,
  	0,0,866,871,5,105,0,0,867,868,5,114,0,0,868,869,5,97,0,0,869,871,5,100,
  	0,0,870,320,1,0,0,0,870,323,1,0,0,0,870,329,1,0,0,0,870,345,1,0,0,0,870,
  	349,1,0,0,0,870,356,1,0,0,0,870,361,1,0,0,0,870,370,1,0,0,0,870,379,1,
  	0,0,0,870,391,1,0,0,0,870,402,1,0,0,0,870,413,1,0,0,0,870,426,1,0,0,0,
  	870,431,1,0,0,0,870,436,1,0,0,0,870,439,1,0,0,0,870,444,1,0,0,0,870,459,
  	1,0,0,0,870,472,1,0,0,0,870,490,1,0,0,0,870,508,1,0,0,0,870,520,1,0,0,
  	0,870,524,1,0,0,0,870,530,1,0,0,0,870,538,1,0,0,0,870,543,1,0,0,0,870,
  	553,1,0,0,0,870,566,1,0,0,0,870,568,1,0,0,0,870,572,1,0,0,0,870,577,1,
  	0,0,0,870,583,1,0,0,0,870,588,1,0,0,0,870,602,1,0,0,0,870,606,1,0,0,0,
  	870,612,1,0,0,0,870,617,1,0,0,0,870,623,1,0,0,0,870,626,1,0,0,0,870,630,
  	1,0,0,0,870,639,1,0,0,0,870,643,1,0,0,0,870,647,1,0,0,0,870,656,1,0,0,
  	0,870,662,1,0,0,0,870,666,1,0,0,0,870,679,1,0,0,0,870,692,1,0,0,0,870,
  	705,1,0,0,0,870,718,1,0,0,0,870,733,1,0,0,0,870,751,1,0,0,0,870,767,1,
  	0,0,0,870,783,1,0,0,0,870,797,1,0,0,0,870,814,1,0,0,0,870,818,1,0,0,0,
  	870,823,1,0,0,0,870,827,1,0,0,0,870,832,1,0,0,0,870,836,1,0,0,0,870,841,
  	1,0,0,0,870,844,1,0,0,0,870,848,1,0,0,0,870,851,1,0,0,0,870,855,1,0,0,
  	0,870,858,1,0,0,0,870,862,1,0,0,0,870,865,1,0,0,0,870,867,1,0,0,0,871,
  	64,1,0,0,0,872,873,5,123,0,0,873,66,1,0,0,0,874,875,5,125,0,0,875,68,
  	1,0,0,0,876,877,5,40,0,0,877,70,1,0,0,0,878,879,5,41,0,0,879,72,1,0,0,
  	0,880,881,5,91,0,0,881,74,1,0,0,0,882,883,5,93,0,0,883,76,1,0,0,0,884,
  	885,5,44,0,0,885,78,1,0,0,0,886,887,5,64,0,0,887,80,1,0,0,0,888,890,3,
  	73,36,0,889,891,3,95,47,0,890,889,1,0,0,0,890,891,1,0,0,0,891,892,1,0,
  	0,0,892,894,3,5,2,0,893,895,3,95,47,0,894,893,1,0,0,0,894,895,1,0,0,0,
  	895,896,1,0,0,0,896,898,5,58,0,0,897,899,3,95,47,0,898,897,1,0,0,0,898,
  	899,1,0,0,0,899,901,1,0,0,0,900,902,3,5,2,0,901,900,1,0,0,0,901,902,1,
  	0,0,0,902,904,1,0,0,0,903,905,3,95,47,0,904,903,1,0,0,0,904,905,1,0,0,
  	0,905,906,1,0,0,0,906,907,3,75,37,0,907,82,1,0,0,0,908,910,3,73,36,0,
  	909,911,3,95,47,0,910,909,1,0,0,0,910,911,1,0,0,0,911,912,1,0,0,0,912,
  	914,3,5,2,0,913,915,3,95,47,0,914,913,1,0,0,0,914,915,1,0,0,0,915,916,
  	1,0,0,0,916,917,3,75,37,0,917,84,1,0,0,0,918,920,7,0,0,0,919,918,1,0,
  	0,0,920,921,1,0,0,0,921,919,1,0,0,0,921,922,1,0,0,0,922,926,1,0,0,0,923,
  	924,7,22,0,0,924,927,7,12,0,0,925,927,7,28,0,0,926,923,1,0,0,0,926,925,
  	1,0,0,0,927,929,1,0,0,0,928,919,1,0,0,0,929,930,1,0,0,0,930,928,1,0,0,
  	0,930,931,1,0,0,0,931,86,1,0,0,0,932,936,7,29,0,0,933,935,7,30,0,0,934,
  	933,1,0,0,0,935,938,1,0,0,0,936,934,1,0,0,0,936,937,1,0,0,0,937,88,1,
  	0,0,0,938,936,1,0,0,0,939,943,7,31,0,0,940,942,7,32,0,0,941,940,1,0,0,
  	0,942,945,1,0,0,0,943,941,1,0,0,0,943,944,1,0,0,0,944,90,1,0,0,0,945,
  	943,1,0,0,0,946,948,7,33,0,0,947,946,1,0,0,0,948,949,1,0,0,0,949,947,
  	1,0,0,0,949,950,1,0,0,0,950,951,1,0,0,0,951,952,6,45,0,0,952,92,1,0,0,
  	0,953,957,5,35,0,0,954,956,9,0,0,0,955,954,1,0,0,0,956,959,1,0,0,0,957,
  	958,1,0,0,0,957,955,1,0,0,0,958,960,1,0,0,0,959,957,1,0,0,0,960,961,5,
  	10,0,0,961,962,1,0,0,0,962,963,6,46,1,0,963,94,1,0,0,0,964,966,7,33,0,
  	0,965,964,1,0,0,0,966,967,1,0,0,0,967,965,1,0,0,0,967,968,1,0,0,0,968,
  	96,1,0,0,0,29,0,100,106,108,113,116,121,127,129,137,139,143,318,870,890,
  	894,898,901,904,910,914,921,926,930,936,943,949,957,967,2,0,2,0,0,3,0
  };
  staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0]));

  antlr4::atn::ATNDeserializer deserializer;
  staticData->atn = deserializer.deserialize(staticData->serializedATN);

  const size_t count = staticData->atn->getNumberOfDecisions();
  staticData->decisionToDFA.reserve(count);
  for (size_t i = 0; i < count; i++) { 
    staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i);
  }
  promqllexerLexerStaticData = std::move(staticData);
}

}

PromQLLexer::PromQLLexer(CharStream *input) : Lexer(input) {
  PromQLLexer::initialize();
  _interpreter = new atn::LexerATNSimulator(this, *promqllexerLexerStaticData->atn, promqllexerLexerStaticData->decisionToDFA, promqllexerLexerStaticData->sharedContextCache);
}

PromQLLexer::~PromQLLexer() {
  delete _interpreter;
}

std::string PromQLLexer::getGrammarFileName() const {
  return "PromQLLexer.g4";
}

const std::vector<std::string>& PromQLLexer::getRuleNames() const {
  return promqllexerLexerStaticData->ruleNames;
}

const std::vector<std::string>& PromQLLexer::getChannelNames() const {
  return promqllexerLexerStaticData->channelNames;
}

const std::vector<std::string>& PromQLLexer::getModeNames() const {
  return promqllexerLexerStaticData->modeNames;
}

const dfa::Vocabulary& PromQLLexer::getVocabulary() const {
  return promqllexerLexerStaticData->vocabulary;
}

antlr4::atn::SerializedATNView PromQLLexer::getSerializedATN() const {
  return promqllexerLexerStaticData->serializedATN;
}

const atn::ATN& PromQLLexer::getATN() const {
  return *promqllexerLexerStaticData->atn;
}




void PromQLLexer::initialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
  promqllexerLexerInitialize();
#else
  ::antlr4::internal::call_once(promqllexerLexerOnceFlag, promqllexerLexerInitialize);
#endif
}
